{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 线性回归模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "### 模型公式：\n",
    "$Q = w_1 \\cdot A + w_2 \\cdot Sr + w_3 \\cdot Ks + w_4 \\cdot E + w_5 \\cdot P + \\sum_{i=6}^{33} w_i$\n",
    "\n",
    "### 优点：\n",
    "- 简单易实现，计算成本低。\n",
    "- 可解释性强：每个参数的权重 $w_i$ 直接反映变量对结果的影响。\n",
    "- 易于收敛：适合快速调整。\n",
    "\n",
    "### 缺点：\n",
    "- 只能处理线性关系，可能无法很好拟合复杂的流量关系。\n",
    "- 容易受多重共线性影响，导致参数估计不准确。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. 多项式回归模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型公式：\n",
    "$$\n",
    "Q = \\sum_{i=1}^{5} w_i x_i + \\sum_{i=1}^{5} \\sum_{j=1}^{5} w_{ij} x_i x_j + \\sum_{k=6}^{33} w_k\n",
    "$$\n",
    "### 优点：\n",
    "- 能够捕获变量之间的非线性关系。\n",
    "- 比线性模型更灵活，拟合效果更好。\n",
    "### 缺点：\n",
    "- 需要更多数据来防止过拟合。\n",
    "- 计算复杂度较高，训练时间较长。\n",
    "- 难以解释模型中高阶交叉项的具体意义。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 神经网络模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型结构：\n",
    "- **输入层**：5个输入节点（集水面积、Sr、Ks、蒸发量、降雨量）。\n",
    "- **隐藏层**：若干个节点，用于学习非线性关系。\n",
    "- **输出层**：1个节点（预测洪峰流量），33个参数直接作为可调参数引入。\n",
    "\n",
    "### 优点：\n",
    "- 能够捕获复杂的非线性关系。\n",
    "- 表达能力强，适用于高维度数据。\n",
    "\n",
    "### 缺点：\n",
    "- 可解释性差，无法直观说明各参数的作用。\n",
    "- 调参复杂，可能出现过拟合或欠拟合问题。\n",
    "- 训练需要更多计算资源。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. 决策树/随机森林"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型特点：\n",
    "- 将输入变量与洪峰流量建立决策规则关系，33个参数可以用作模型的全局调节因子。\n",
    "\n",
    "### 优点：\n",
    "- 能够处理非线性关系，抗噪性较强。\n",
    "- 自动选择重要特征，减少人为干预。\n",
    "\n",
    "### 缺点：\n",
    "- 随机森林无法直接优化33个独立参数，需通过其他机制配合。\n",
    "- 过于复杂的数据关系可能导致性能下降。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. 支持向量回归（SVR）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型特点：\n",
    "- 使用核函数将输入变量映射到高维空间，33个参数可以作为核函数的附加权重。\n",
    "\n",
    "### 优点：\n",
    "- 能够捕获复杂的非线性关系。\n",
    "- 对高维数据表现良好。\n",
    "\n",
    "### 缺点：\n",
    "- 对于大数据集，计算量很大，训练速度慢。\n",
    "- 参数调优较复杂，需选择合适的核函数和超参数。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6. 深度学习模型（如深度前馈网络）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型结构：\n",
    "- 深度前馈网络由多层隐藏层组成，每层节点与33个参数相连接，最终输出洪峰流量。\n",
    "\n",
    "### 优点：\n",
    "- 极强的非线性拟合能力，适合复杂关系。\n",
    "- 可扩展性高，可以加入额外特征或条件。\n",
    "\n",
    "### 缺点：\n",
    "- 计算资源需求大，训练时间长。\n",
    "- 过于复杂时可能过拟合小规模数据。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结对比"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "| 模型          | 优点                                          | 缺点                                      | 适用性                           |\n",
    "|---------------|-----------------------------------------------|-------------------------------------------|----------------------------------|\n",
    "| 线性回归       | 简单、高效、易解释                           | 无法处理非线性关系                        | 初步分析或简单关系               |\n",
    "| 多项式回归     | 能处理非线性关系，表达能力较强               | 容易过拟合，计算复杂                       | 小规模数据中使用效果较好         |\n",
    "| 神经网络       | 表达能力强，能处理复杂非线性关系             | 计算资源需求高，难以解释                   | 复杂数据且有足够计算资源         |\n",
    "| 决策树/随机森林 | 抗噪性强，特征选择自动化                   | 参数优化难度高，难直接优化33参数           | 数据集不均衡或噪声较大           |\n",
    "| SVR           | 强大的非线性拟合能力，适合小样本学习         | 计算量大，对大样本不适用                   | 样本较少、维度较高时效果好       |\n",
    "| 深度学习       | 非线性拟合能力极强，适合大规模复杂问题       | 需要大量数据和资源，解释性差               | 大规模数据且需要高精度预测场景   |\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- **数据量较少**时，使用 **多项式回归** 或 **线性回归**，模型简单且易解释。\n",
    "- **数据复杂或非线性关系显著**时，选择 **神经网络** 或 **深度学习**。\n",
    "- **噪声数据较多**时，建议使用 **随机森林**。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ml",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
